//函数组合的使用

//函数组合的都是纯函数
function compose (f, g) {
    return function (value) {       //返回最终函数
        return f(g(value));         //洋葱代码
    }
}

//辅助函数 能够任意组合 能够最大程度的重用
//反转数组    此处非纯函数，有误
function reverse (array) {
    return array.reverse();
}

//获取数组第一个元素
function first (array) {
    return array[0];
}

const last = compose(first, reverse);

console.log(last([1, 2, 3, 4]));